package com.example.user.dto;

import lombok.Data;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Min;
import javax.validation.constraints.Max;
import java.math.BigDecimal;

/**
 * 语音偏好设置更新DTO
 * @author crp
 * @since 2025-09-28
 */
@Data
public class VoicePreferencesUpdateDTO {

    /**
     * 偏好角色类型
     */
    private String preferredCharacterType;

    /**
     * 语音速度 (0.5-2.0)
     */
    @DecimalMin(value = "0.5", message = "语音速度不能小于0.5")
    @DecimalMax(value = "2.0", message = "语音速度不能大于2.0")
    private BigDecimal voiceSpeed;

    /**
     * 语音音调 (0.5-2.0)
     */
    @DecimalMin(value = "0.5", message = "语音音调不能小于0.5")
    @DecimalMax(value = "2.0", message = "语音音调不能大于2.0")
    private BigDecimal voicePitch;

    /**
     * 语音音色：female/male/child/sunny
     */
    private String voiceTone;

    /**
     * 语音语言：auto/Chinese/English/Mixed
     */
    private String voiceLanguage;

    /**
     * 是否开启自动情绪检测
     */
    private Boolean autoEmotionDetection;

    /**
     * 隐私级别：1-标准，2-高，3-最高
     */
    @Min(value = 1, message = "隐私级别最小为1")
    @Max(value = 3, message = "隐私级别最大为3")
    private Integer privacyLevel;

    /**
     * 是否开启通知
     */
    private Boolean notificationEnabled;

    /**
     * 语音通知开关
     */
    private Boolean voiceNotificationEnabled;
}

